package 动态创建对象并调用方法;

import java.lang.reflect.Method;

public class DynamicMethodInvocation {
    public static void main(String[] args) throws Exception {
        // 获取Class对象
        Class<?> clazz = Class.forName("java.util.ArrayList");
        
        // 创建实例
        Object list = clazz.getDeclaredConstructor().newInstance();
        
        // 获取add方法
        Method addMethod = clazz.getMethod("add", Object.class);
        
        // 调用add方法添加元素
        addMethod.invoke(list, "Hello");
        addMethod.invoke(list, "World");
        
        // 获取size方法并调用
        Method sizeMethod = clazz.getMethod("size");
        int size = (int) sizeMethod.invoke(list);
        
        System.out.println("List size: " + size); // 输出: List size: 2
        System.out.println("List content: " + list); // 输出: List content: [Hello, World]
    }
}